Overture

This notebook reproduces the results from Weng et al.

It is highly recommended for the reader to familiarize oneself with the paper before proceeding. This is basically a pure reproduction, without a lot of explanations or context.

All in all I'd say that reproducing the results was relatively straightforward, if time-consuming as mimicking the original figures took several lines of code. I guess that can be construed as the original paper being a solid piece of work.

Anyhow, the most challenging part was without a doubt calculating the resistance, as it required clipping the HPPC cycle in a very specific manner. I'm glad I was finally able to crack that.

Dataset

Load in all data from UMich

The dataset contains two categories, each containing two subcategories (I made it in draw.io, modeling figure S1a in the original paper):

Experiment protocol

We're going to store them in a dict as follows

-- cycling: pd.DataFrame

-- formation: pd.DataFrame

-- high_temperature: bool (45 or ambient)

-- fast_formation: bool (fast or normal)}

-- (some others are added later on)

Figure 1: Fast formation superior to baseline formation

Figure implementation

Original figure:

Figure 1


Let's see whether there's a statistically significant difference in the cycling performance between the two protocols.

The original paper reports $p<0.001$ for both temperatures. However, exact values are not specified.

Both p-values are in agreement with the original findings.


Before going any further we should look at the two formation protocols.

(don't mind the colormap)

and also the first few cycles after formation

We want to extract $V$ and $I$ from the 'jagged' charge step to calculate the resistance. It is there that the high current pulse was applied.

Figure 2

This figure is essentially two separate subfigures: The upper row is all conventional electrochemical properties, whereas the lower one contains resistance plots.

Do note that I change the color scheme a little bit. I don't particularly care for how they did it for this one.

This zoomed-in figure demonstrates how we calculate $\Delta \mathrm{V}$ for each current pulse, i.e. $\color{blue}{\mathrm{V}}$ subtracted from $\color{red}{\mathrm{V}}$.

Figure implementation

Original figure:

figure 2

Figure 3: Modeling Diagnostic Signals

Figure implementation

Original figure (note that my axes have different limits):

figure 3

All in all, my results match the original ones quite well. Any differences are minute and don't affect the statistical interpretation.